Global

Column

Carbon-dioxide concentration

Global mean temperature difference from 1850-1900

Row

Global ocean heat content difference from 1981-2010

Global sea level difference from 1981-2010

United Kingdom & London

Column

UK annual mean air temperature

Great Britain sea level from tide gauges

Row

London annual maximum and minimum air temperature

London annual mean precipitation

London annual mean wind speed

Temperature projections - Thames Estuary area

Column

Path: if global average temperature reaches 2°C by 2100

Path: if global average temperature reaches 3°C by 2100

Path: if global average temperature reaches 4°C by 2100

Row

Median temperature change averaged across the riparian boroughs

Rainfall projections - Thames Estuary area

---
title: "Climate Change Dashboard"
output: 
  flexdashboard::flex_dashboard:
    source_code: embed
---

```{r setup, include=FALSE}
library(dygraphs)
library(xts)
library(lubridate)
library(dplyr)
library(tidyr)
library(leaflet)
library(sp)
library(raster)
library(mapview)
library(leafsync)
library(glue)

#author: Wanda Bodnar

## Data sources: 
#https://climate.metoffice.cloud/dashboard.html,
#https://www.metoffice.gov.uk/pub/data/weather/uk/climate/datasets/Tmean/date/UK.txt,
#https://www.metoffice.gov.uk/pub/data/weather/uk/climate/stationdata/heathrowdata.txt,
##https://www.kaggle.com/datasets/noahx1/london-weather-2000-2023,
#https://psmsl.org/data/, 
#https://www.sciencedirect.com/science/article/pii/S0079661121000112?via%3Dihub#s0180, 
```

Global
=====================================

Column {data-width=550}
-------------------------------------
### Carbon-dioxide concentration

```{r}
mauna <- read.csv(url("https://climate.metoffice.cloud/formatted_data/co2_Mauna%20Loa%20CO2.csv"))
mauna$Year <- as.numeric(mauna$Year)
mauna <- mauna %>%
  group_by(Year) %>%
  dplyr::summarize(Mean_Mauna = mean(Mauna.Loa.CO2..ppm., na.rm = TRUE))

NOAA <- read.csv(url("https://climate.metoffice.cloud/formatted_data/co2_NOAA%20CO2.csv"))
NOAA$Year <- as.numeric(NOAA$Year)
NOAA <- NOAA %>%
  group_by(Year) %>%
  dplyr::summarize(Mean_NOAA = mean(NOAA.CO2..ppm., na.rm = TRUE))

WDCGG <- read.csv(url("https://climate.metoffice.cloud/formatted_data/co2_WDCGG%20CO2.csv"))
WDCGG$Year <- as.numeric(WDCGG$Year)
WDCGG <- WDCGG %>%
  group_by(Year) %>%
  dplyr::summarize(Mean_WDCGG = mean(WDCGG.CO2..ppm., na.rm = TRUE))

carbon <- merge(mauna, NOAA, by = "Year", all = T)

carbon <- merge(carbon, WDCGG, by = "Year")

names(carbon)[names(carbon) == "Mean_Mauna"] <- "Mauna Loa"
names(carbon)[names(carbon) == "Mean_NOAA"] <- "NOAA"
names(carbon)[names(carbon) == "Mean_WDCGG"] <- "WDCGG"

dygraph(carbon, main = "") %>%
  dyOptions(colors = RColorBrewer::brewer.pal(3, "Set3")) %>%
  dyOptions(fillGraph = TRUE, fillAlpha = 0.1) %>%
  dyAxis("y", label = "Parts per million (ppm)") %>%
  dyRangeSelector() 
```

### Global mean temperature difference from 1850-1900

```{r}
HadCRUT5 <- read.csv(url("https://climate.metoffice.cloud/formatted_data/gmt_HadCRUT5.csv"))
HadCRUT5$Year <- as.numeric(HadCRUT5$Year)

NOAA <- read.csv(url("https://climate.metoffice.cloud/formatted_data/gmt_NOAAGlobalTemp.csv"))
NOAA$Year <- as.numeric(NOAA$Year)

berkeley <- read.csv(url("https://climate.metoffice.cloud/formatted_data/gmt_Berkeley%20Earth.csv"))
berkeley$Year <- as.numeric(berkeley$Year)

temp <- merge(HadCRUT5, NOAA, by = "Year", all = T)

temp <- merge(temp, berkeley, by = "Year", all = T)

temp <- subset(temp, select= -c(HadCRUT5.uncertainty, NOAAGlobalTemp.uncertainty, Berkeley.Earth.uncertainty))

names(temp)[names(temp) == "HadCRUT5..degC."] <- "Met Office"
names(temp)[names(temp) == "NOAAGlobalTemp..degC."] <- "NOAA"
names(temp)[names(temp) == "Berkeley.Earth..degC."] <- "Berkeley Earth"

dygraph(temp, main = "") %>%
  dyOptions(colors = RColorBrewer::brewer.pal(3, "Dark2")) %>%
  dyOptions(fillGraph = TRUE, fillAlpha = 0.1) %>%
  dyAxis("y", label = "Temperature (°C)") %>%
  dyRangeSelector() 
```   

Row {data-height=500}
-------------------------------------

### Global ocean heat content difference from 1981-2010

```{r}
EN.4.2.2.c14 <- read.csv(url("https://climate.metoffice.cloud/formatted_data/ohc_EN.4.2.2.c14.csv"))
EN.4.2.2.c14$Year <- as.numeric(EN.4.2.2.c14$Year)

Levitus <- read.csv(url("https://climate.metoffice.cloud/formatted_data/ohc_Levitus.csv"))
Levitus$Year <- as.numeric(Levitus$Year)

EN.4.2.2.c13 <- read.csv(url("https://climate.metoffice.cloud/formatted_data/ohc_EN.4.2.2.c13.csv"))
EN.4.2.2.c13$Year <- as.numeric(EN.4.2.2.c13$Year)

EN.4.2.2.g10 <- read.csv(url("https://climate.metoffice.cloud/formatted_data/ohc_EN.4.2.2.g10.csv"))
EN.4.2.2.g10$Year <- as.numeric(EN.4.2.2.g10$Year)

EN.4.2.2.l09 <- read.csv(url("https://climate.metoffice.cloud/formatted_data/ohc_EN.4.2.2.l09.csv"))
EN.4.2.2.l09$Year <- as.numeric(EN.4.2.2.l09$Year)

IAP <- read.csv(url("https://climate.metoffice.cloud/formatted_data/ohc_IAP.csv"))
IAP$Year <- as.numeric(IAP$Year)

JMA <- read.csv(url("https://climate.metoffice.cloud/formatted_data/ohc_JMA.csv"))
JMA$Year <- as.numeric(JMA$Year)

oceanheat <- merge(EN.4.2.2.c14, Levitus, by = "Year", all = T)

oceanheat <- merge(oceanheat, EN.4.2.2.c13, by = "Year", all = T)

oceanheat <- merge(oceanheat, EN.4.2.2.g10, by = "Year", all = T)

oceanheat <- merge(oceanheat, EN.4.2.2.l09, by = "Year", all = T)

oceanheat <- merge(oceanheat, IAP, by = "Year", all = T)

oceanheat <- merge(oceanheat, JMA, by = "Year", all = T)

oceanheat <- subset(oceanheat, select= -c(EN.4.2.2.c14.uncertainty, 
                                        Levitus.uncertainty,
                                        EN.4.2.2.c13.uncertainty,
                                        EN.4.2.2.g10.uncertainty,
                                        EN.4.2.2.l09.uncertainty,
                                        IAP.uncertainty,
                                        JMA.uncertainty))

names(oceanheat)[names(oceanheat) == "EN.4.2.2.c14..10ZJ."] <- "EN.4.2.2.c14"
names(oceanheat)[names(oceanheat) == "Levitus..10ZJ."] <- "Levitus"
names(oceanheat)[names(oceanheat) == "EN.4.2.2.c13..10ZJ."] <- "EN.4.2.2.c13"
names(oceanheat)[names(oceanheat) == "EN.4.2.2.g10..10ZJ."] <- "EN.4.2.2.g10"
names(oceanheat)[names(oceanheat) == "EN.4.2.2.l09..10ZJ."] <- "EN.4.2.2.l09"
names(oceanheat)[names(oceanheat) == "IAP..10ZJ."] <- "IAP"
names(oceanheat)[names(oceanheat) == "JMA..10ZJ."] <- "JMA"

dygraph(oceanheat, main = "") %>%
  dyOptions(colors = RColorBrewer::brewer.pal(7, "Dark2")) %>%
  dyOptions(fillGraph = TRUE, fillAlpha = 0.1) %>%
  dyAxis("y", label = "10<sup>22</sup> Joules") %>%
  dyRangeSelector() 
```

### Global sea level difference from 1981-2010

```{r}
palmer <- read.csv(url("https://climate.metoffice.cloud/formatted_data/sea_level_lt_Palmer%20et%20al.%202021.csv"))
palmer$Year <- as.numeric(palmer$Year)

CW2011 <- read.csv(url("https://climate.metoffice.cloud/formatted_data/sea_level_lt_CW2011.csv"))
CW2011$Year <- as.numeric(CW2011$Year)

HA2015 <- read.csv(url("https://climate.metoffice.cloud/formatted_data/sea_level_lt_HA2015.csv"))
HA2015$Year <- as.numeric(HA2015$Year)

DA2019 <- read.csv(url("https://climate.metoffice.cloud/formatted_data/sea_level_lt_DA2019.csv"))
DA2019$Year <- as.numeric(DA2019$Year)

FR2020 <- read.csv(url("https://climate.metoffice.cloud/formatted_data/sea_level_lt_FR2020.csv"))
FR2020$Year <- as.numeric(FR2020$Year)

sealevel <- merge(palmer, CW2011, by = "Year", all = T)

sealevel <- merge(sealevel, HA2015, by = "Year", all = T)

sealevel <- merge(sealevel, DA2019, by = "Year", all = T)

sealevel <- merge(sealevel, FR2020, by = "Year", all = T)

sealevel <- subset(sealevel, select= -c(Palmer.et.al..2021.uncertainty, 
                                          CW2011.uncertainty,
                                          HA2015.uncertainty,
                                          DA2019.uncertainty,
                                          FR2020.uncertainty))

names(sealevel)[names(sealevel) == "Palmer.et.al..2021..mm."] <- "Palmer et al. 2021"
names(sealevel)[names(sealevel) == "CW2011..mm."] <- "CW2011"
names(sealevel)[names(sealevel) == "HA2015..mm."] <- "HA2015"
names(sealevel)[names(sealevel) == "DA2019..mm."] <- "DA2019"
names(sealevel)[names(sealevel) == "FR2020..mm."] <- "FR2020"

dygraph(sealevel, main = "") %>%
  dyOptions(colors = RColorBrewer::brewer.pal(5, "Set2")) %>%
  dyOptions(fillGraph = TRUE, fillAlpha = 0.1) %>%
  dyAxis("y", label = "Milimetres (mm)") %>%
  dyRangeSelector() 
``` 


United Kingdom & London
=====================================

Column {data-width=550}
-------------------------------------
### UK annual mean air temperature
```{r}

setwd("C:/Users/bodna/Documents/Work/Roadmap to Climate Resilience/Working folder/Data")

uk <- read.csv("uk_temp.csv")

dygraph(uk, main = "") %>% 
  dySeries("ann", label = "°C") %>%
  dyOptions(fillGraph = TRUE, fillAlpha = 0.1) %>%
  dyAxis("y", label = "Temperature (°C)") %>%
  dyLegend(show = "always", hideOnMouseOut = T) %>%
  dyRangeSelector() 
```

### Great Britain sea level from tide gauges
```{r}

setwd("C:/Users/bodna/Documents/Work/Roadmap to Climate Resilience/Working folder/Data/sea level")

sea <- read.csv("uk2.csv")

dygraph(sea, main = "") %>% 
  dySeries("mm", label = "mm", color = "lightblue") %>%
  dyAxis("y", label = "Sea level (mm)") %>%
  dyOptions(fillGraph = TRUE, fillAlpha = 0.8) %>%
  dyLegend(show = "always", hideOnMouseOut = T) %>%
  dyRangeSelector() 
```

Row {data-height=500}
-------------------------------------

### London annual maximum and minimum air temperature
```{r}
setwd("C:/Users/bodna/Documents/Work/Roadmap to Climate Resilience/Working folder/Data")

london <- read.csv("london.csv")

london_monthly_combined <- london %>%
  group_by(year) %>%
  summarise(across(c(tmax, tmin), mean, na.rm=TRUE))

dygraph(london_monthly_combined, main = "") %>% 
  dySeries("tmax", label = "Max temperature", color = "red") %>%
  dySeries("tmin", label = "Min temperature", color = "blue") %>%
  dyAxis("y", label = "Temperature (°C)") %>%
  dyLegend(show = "always", hideOnMouseOut = T) %>%
  dyRangeSelector() 
```

### London annual mean precipitation
```{r}
setwd("C:/Users/bodna/Documents/Work/Roadmap to Climate Resilience/Working folder/Data")

london <- read.csv("london.csv")

london_monthly_combined <- london %>%
  group_by(year) %>%
  summarise(across(c(rain_mm), mean, na.rm=TRUE))

dygraph(london_monthly_combined, main = "") %>% 
  dySeries("rain_mm", label = "mm", color = "darkblue") %>%
  dyAxis("y", label = "Rain (mm)") %>%
  dyOptions(fillGraph = TRUE, fillAlpha = 0.1) %>%
  dyLegend(show = "always", hideOnMouseOut = T) %>%
  dyRangeSelector() 
```

### London annual mean wind speed
```{r}
setwd("C:/Users/bodna/Documents/Work/Roadmap to Climate Resilience/Working folder/Data")

wind <- read.csv("wind.csv")

wind_combined <- wind %>%
  group_by(Year) %>%
  summarise(across(c(wspd), mean, na.rm=TRUE))

dygraph(wind_combined, main = "") %>% 
  dySeries("wspd", label = "km/h", color = "green") %>%
  dyAxis("y", label = "Wind speed (km/h)") %>%
  dyOptions(fillGraph = TRUE, fillAlpha = 0.1) %>%
  dyLegend(show = "always", hideOnMouseOut = T) %>%
  dyRangeSelector() 
```


# Temperature projections - Thames Estuary area

Column {data-width=550}
-------------------------------------

### Path: if global average temperature reaches 2°C by 2100

```{r}
## 2
setwd("C:/Users/bodna/Documents/Work/Roadmap to Climate Resilience/Working folder/Data/UK-CRI/Temperature/2")
temp2 <- sf::read_sf("2.geojson") 

bins2 <- c(0.8, 1, 1.2, 1.4)
pal2 <- colorBin(palette = c("#ffc700", "#f9b700", "#f3a700", "#ec9700"), domain = c(min(temp2$y2036), max(temp2$y2076)), bins = bins2)


label30_2 <- glue(
  "<b>Borough: </b> {temp2$location}<br/>",
  "<b>Average temp: </b> {temp2$y2036}<br/>") %>%
  lapply(htmltools::HTML)

label40_2 <- glue(
  "<b>Borough: </b> {temp2$location}<br/>",
  "<b>Average temp: </b> {temp2$y2046}<br/>") %>%
  lapply(htmltools::HTML)

label50_2 <- glue(
  "<b>Borough: </b> {temp2$location}<br/>",
  "<b>Average temp: </b> {temp2$y2056}<br/>") %>%
  lapply(htmltools::HTML)

label60_2 <- glue(
  "<b>Borough: </b> {temp2$location}<br/>",
  "<b>Average temp: </b> {temp2$y2066}<br/>") %>%
  lapply(htmltools::HTML)

label70_2 <- glue(
  "<b>Borough: </b> {temp2$location}<br/>",
  "<b>Average temp: </b> {temp2$y2076}<br/>") %>%
  lapply(htmltools::HTML)

label80_2 <- glue(
  "<b>Borough: </b> {temp2$location}<br/>",
  "<b>Average temp: </b> {temp2$y2086}<br/>") %>%
  lapply(htmltools::HTML)

leaflet(temp2) %>%
  addTiles() %>%
  addProviderTiles(providers$CartoDB.Positron) %>% 
  addPolygons(label = label30_2, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal2(y2036), group = "2030s") %>%
  addPolygons(label = label40_2, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal2(y2046), group = "2040s") %>%
  addPolygons(label = label50_2, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal2(y2056), group = "2050s") %>%
  addPolygons(label = label60_2, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal2(y2066), group = "2060s") %>%
  addPolygons(label = label70_2, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal2(y2076), group = "2070s") %>%
  addPolygons(label = label80_2, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal2(y2086), group = "2080s") %>%
  leaflet::addLegend(pal = pal2, values = c(min(temp2$y2036), max(temp2$y2086)), 
            opacity = 0.7, title = "Median change", position = "bottomleft", labFormat = labelFormat(suffix = "°C")) %>% 
  addLayersControl(
    overlayGroups = c("2030s", "2040s", "2050s", "2060s", "2070s", "2080s"),
    options = layersControlOptions(collapsed = F)) %>%
   hideGroup(c("2040s", "2050s", "2060s", "2070s", "2080s"))
```


### Path: if global average temperature reaches 3°C by 2100

```{r}
## 3
setwd("C:/Users/bodna/Documents/Work/Roadmap to Climate Resilience/Working folder/Data/UK-CRI/Temperature/3")
temp3 <- sf::read_sf("3.geojson") 

bins3 <- c(1, 1.2, 1.4, 1.6, 1.8, 2, 2.2)
pal3 <- colorBin(palette = c("#f9b700", "#f3a700", "#ec9700", "#e58700", "#dd7800",
                             "#d56800", "#d56800"), domain = c(min(temp3$y2036), max(temp3$y2086)), bins = bins3)


label30_3 <- glue(
  "<b>Borough: </b> {temp3$location}<br/>",
  "<b>Average temp: </b> {temp3$y2036}<br/>") %>%
  lapply(htmltools::HTML)

label40_3 <- glue(
  "<b>Borough: </b> {temp3$location}<br/>",
  "<b>Average temp: </b> {temp3$y2046}<br/>") %>%
  lapply(htmltools::HTML)

label50_3 <- glue(
  "<b>Borough: </b> {temp3$location}<br/>",
  "<b>Average temp: </b> {temp3$y2056}<br/>") %>%
  lapply(htmltools::HTML)

label60_3 <- glue(
  "<b>Borough: </b> {temp3$location}<br/>",
  "<b>Average temp: </b> {temp3$y2066}<br/>") %>%
  lapply(htmltools::HTML)

label70_3 <- glue(
  "<b>Borough: </b> {temp3$location}<br/>",
  "<b>Average temp: </b> {temp3$y2076}<br/>") %>%
  lapply(htmltools::HTML)

label80_3 <- glue(
  "<b>Borough: </b> {temp3$location}<br/>",
  "<b>Average temp: </b> {temp3$y2086}<br/>") %>%
  lapply(htmltools::HTML)

leaflet(temp3) %>%
  addTiles() %>%
  addProviderTiles(providers$CartoDB.Positron) %>% 
  addPolygons(label = label30_3, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal3(y2036), group = "2030s") %>%
  addPolygons(label = label40_3, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal3(y2046), group = "2040s") %>%
  addPolygons(label = label50_3, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal3(y2056), group = "2050s") %>%
  addPolygons(label = label60_3, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal3(y2066), group = "2060s") %>%
  addPolygons(label = label70_3, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal3(y2076), group = "2070s") %>%
  addPolygons(label = label80_3, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal3(y2086), group = "2080s") %>%
  leaflet::addLegend(pal = pal3, values = c(min(temp3$y2036), max(temp3$y2086)), 
            opacity = 0.7, title = "Median change", position = "bottomleft", labFormat = labelFormat(suffix = "°C")) %>% 
  addLayersControl(
    overlayGroups = c("2030s", "2040s", "2050s", "2060s", "2070s", "2080s"),
    options = layersControlOptions(collapsed = F)) %>%
  hideGroup(c("2040s", "2050s", "2060s", "2070s", "2080s"))
```

### Path: if global average temperature reaches 4°C by 2100

```{r}
## 4
setwd("C:/Users/bodna/Documents/Work/Roadmap to Climate Resilience/Working folder/Data/UK-CRI/Temperature/4")

temp4 <- sf::read_sf("4.geojson") 

bins4 <- c(1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.6, 2.8, 3)
pal4 <- colorBin(palette = c("#f9b700", "#f3a700", "#ec9700", "#e58700", "#dd7800",
                             "#d56800", "#d56800", "#cc5800", "#c24700", "#b83600", "#ae2200"), 
                 domain = c(min(temp4$y2036), max(temp4$y2086)), bins = bins4)


label30_4 <- glue(
  "<b>Borough: </b> {temp4$location}<br/>",
  "<b>Average temp: </b> {temp4$y2036}<br/>") %>%
  lapply(htmltools::HTML)

label40_4 <- glue(
  "<b>Borough: </b> {temp4$location}<br/>",
  "<b>Average temp: </b> {temp4$y2046}<br/>") %>%
  lapply(htmltools::HTML)

label50_4 <- glue(
  "<b>Borough: </b> {temp4$location}<br/>",
  "<b>Average temp: </b> {temp4$y2056}<br/>") %>%
  lapply(htmltools::HTML)

label60_4 <- glue(
  "<b>Borough: </b> {temp4$location}<br/>",
  "<b>Average temp: </b> {temp4$y2066}<br/>") %>%
  lapply(htmltools::HTML)

label70_4 <- glue(
  "<b>Borough: </b> {temp4$location}<br/>",
  "<b>Average temp: </b> {temp4$y2076}<br/>") %>%
  lapply(htmltools::HTML)

label80_4 <- glue(
  "<b>Borough: </b> {temp4$location}<br/>",
  "<b>Average temp: </b> {temp4$y2086}<br/>") %>%
  lapply(htmltools::HTML)

leaflet(temp4) %>%
  addTiles() %>%
  addProviderTiles(providers$CartoDB.Positron) %>% 
  addPolygons(label = label30_4, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal4(y2036), group = "2030s") %>%
  addPolygons(label = label40_4, 
             weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal4(y2046), group = "2040s") %>%
  addPolygons(label = label50_4, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal4(y2056), group = "2050s") %>%
  addPolygons(label = label60_4, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal4(y2066), group = "2060s") %>%
  addPolygons(label = label70_4, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal4(y2076), group = "2070s") %>%
  addPolygons(label = label80_4, 
              weight = 1,
              opacity = 1,
              color = "white",
              dashArray = "1",
              fillOpacity = 0.7,
              fillColor = ~pal4(y2086), group = "2080s") %>%
  leaflet::addLegend(pal = pal4, values = c(min(temp4$y2036), max(temp4$y2086)), 
            opacity = 0.7, title = "Median change", position = "bottomleft", labFormat = labelFormat(suffix = "°C")) %>% 
  addLayersControl(
    overlayGroups = c("2030s", "2040s", "2050s", "2060s", "2070s", "2080s"),
    options = layersControlOptions(collapsed = F)) %>%
  hideGroup(c("2040s", "2050s", "2060s", "2070s", "2080s"))
```


Row 
-------------------------------------

### Median temperature change averaged across the riparian boroughs

```{r}
setwd("C:/Users/bodna/Documents/Work/Roadmap to Climate Resilience/Working folder/Data/UK-CRI/Temperature")

ave <- read.csv("average.csv")

ave$year <- as.numeric(ave$year)

dygraph(ave, main = "") %>%
  dyAxis("y", label = "Temperature change") %>%
  dySeries("X2_value", label = "2°C", color = "green") %>%
  dySeries("X3_value", label = "3°C", color = "orange") %>%
  dySeries("X4_value", label = "4°C", color = "red") %>%
  dyRangeSelector() 
```

# Rainfall projections - Thames Estuary area